package com.yanggu.scala.chapater18.mytype

import scala.collection.mutable
import scala.Predef

//在scala中有type关键字可以创建一个简单的别名, 这对于复杂的类型来说是非常有用的。
//除了在定义class、trait、object时会产生类型，还可以通过type关键字来声明类型。
//定义的别名在idea中会显示成萤色, 当我们点击时, 是可以点击到声明的地方。
//在scala中定义了非常多的内置别名。例如String、List、Map等。这些别名定义在Predef对象中
//object Predef extends LowPriorityImplicits with DeprecatedPredef
//另外定义的别名只能在本包下使用。
//一般而言别名定义在包对象中。这样方便统一进行管理。scala包对象中定义了大量的别名
object TypeDemo01 {

  type myHashMap = mutable.HashMap[String, (Int, Int)]

  def main(args: Array[String]): Unit = {
    //使用自定义的别名。和之前的使用没有任何区别
    val map = new myHashMap
    map.put("1", (1, 1))
    println(map)

  }

}

class Book18 {

  type hashMap1 = mutable.HashMap[String, (Int, Int)]

}

